The media business is expanding rapidly. For example, one may access video and/or audio media via broadcast television, cable television, satellite television, the internet, compact discs, video cassette tapes, audio cassette tapes, digital video discs, laser discs, etc. While there are many audio and video media sources and corresponding media storage devices, each requires a separate player. For example, a video cassette requires a video cassette player or recorder, a DVD disc requires a DVD player, a television broadcast requires a television tuner, etc.
Current consumer electronic trends are integrating many of the separate players into a system via integration devices. One such integration device is a set top box. The set top box receives inputs from various players (e.g., cable broadcasts, VCRs, etc.) and, based on user commands, provides signals from a selected player to a display (e.g., a television, a CRT monitor). Typically, the user will provide a command via a wireless remote controller. Such a command may be to adjust the volume, change the channel, change picture settings, display a menu, etc. In response to the command, the set top box, or one of the players, generates a two-dimensional graphical representation of the command and may further provide a two-dimensional representation of the execution. The graphical representation is often called a graphical user interface.
As an example of the graphical user interface, assume that a command has been received to adjust the audio volume on a television. As the command is processed, a two-dimensional graphics is displayed that illustrates the volume increasing or decreasing. As another example, a user may provide a command to a satellite receiver that causes a channel guide to be displayed. The user, via the wireless remote controller, or via inputs on the satellite receiver, selects a channel and time of interest. At this point, the selected channel is highlighted by a color change. The user then provides additional commands to obtain brief information regarding the program airing at the selected time and to view the selected program. Based on the user's command, the additional information is displayed and/or the program is displayed. As still a further example, when the user is viewing a program that is processed by a satellite receiver, the user may input a command causing two-dimensional graphics that includes text information to be displayed over the program.
As video processing technologies evolve, a few three-dimensional graphical interfaces have been developed. Once such three-dimensional video graphical interface provides a three dimensional hallway effect where text data is provided on each of the walls, floor, and ceiling. As the perspective fades into the distance, the text size diminishes accordingly.
When live video (e.g., video signals provided by a VCR, satellite broadcast, DVD player, etc.), has been used in conjunction with three-dimensional graphical interfaces, the results have been less than desirable. For example, when live video is mapped onto a surface, which may be a two-dimensional window or a surface of a three-dimensional object, the live video is copied into a texture map. Once stored in the texture map, it is mapped onto the surface. The steps of copying and then mapping cause delays in displaying the live video, resulting in a non-real time displaying of the live video. As is known, video graphics hardware dictates that video data must be written into a texture map before it can be mapped onto a surface. This requirement results because the hardware operates on a texture maps that have sizes (i.e., height and depth) constrained to powers of 2 due to the scaling of the texture maps and the generation of MIP maps. The video data, however, is based on a display size (e.g., 640.times.480), which is not sized in accordance with the power of 2 requirement. As such, the video decoder that processes the video signals and the video graphics circuit are not directly compatible.
Therefore, a need exists of a method and apparatus of providing real time three-dimensional objects and live video integration.